package com.shuke.medical.insure.model.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * @author woo hua
 * @date 2023-03-31 16:40
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value="医保退款对象")
public class ChsRefundDTO implements Serializable {

    @ApiModelProperty("支付订单号")
    @NotBlank(message = "支付订单号不能为空")
    private String payOrdId;
    @NotBlank(message = "应用退款流水号不能为空")
    @ApiModelProperty("应用退款流水号")
    private String appRefdSn;
    @NotBlank(message = "应用退费时间不能为空")
    @ApiModelProperty("应用退费时间")
    private String appRefdTime;
    @NotNull(message = "总退费金额不能为空")
    @ApiModelProperty("总退费金额")
    private BigDecimal totlRefdAmt;
    @NotNull(message = "医保个人账户支付不能为空")
    @ApiModelProperty("医保个人账户支付")
    private BigDecimal psnAcctRefdAmt;
    @ApiModelProperty("基金支付,其实传统筹")
    private BigDecimal fundRefdAmt;
    @NotNull(message = "现金退费金额不能为空")
    @ApiModelProperty("现金退费金额")
    private BigDecimal cashRefdAmt;
//    @ApiModelProperty("电子凭证授权Token")
//    private String ecToken;
    /**
     * ALL:全部，CASH:只退现金 HI:只退医保
     */
    @NotBlank(message = "退费类型不能为空")
    @ApiModelProperty("退费类型")
    private String refdType;
    @ApiModelProperty("扩展数据，json")
    private String expContent;
    @ApiModelProperty("支付授权码")
    @NotBlank(message = "支付授权码不能为空")
    private String payAuthNo;
}
